package com.装饰者模式;

import java.math.BigDecimal;

/**
 * 顶级父类：装饰着和被装饰着都继承这个类
 * 因为被装饰者有描述和价格，装饰着也有描述和价格
 */
public abstract class Drink {

    /**
     * 这些属性会被子类实现
     */
    //描述
    public String desc;

    //价格
    public BigDecimal price;

    /**
     * 计算总价格的抽象方法：因为每种咖啡的价格不一样，所以计算出来的商品总价格也不一样
     * 因此要子类完成自己的总价格计算
     */
    public abstract BigDecimal cost();

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }
}
